home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / src / alib / csup / exec_support / BeginIO.asm next >
Assembly Source File  |  1994-02-16  |  1KB  |  50 lines

  1.  
  2. ******* amiga.lib/BeginIO ****************************************************
  3. *
  4. *   NAME
  5. *    BeginIO -- initiate asynchronous device I/O
  6. *
  7. *   SYNOPSIS
  8. *    BeginIO(ioReq)
  9. *
  10. *    VOID BeginIO(struct IORequest *);
  11. *
  12. *   FUNCTION
  13. *    This function takes an IORequest, and passes it directly to the
  14. *    "BeginIO" vector of the proper device.  This is equivalent to
  15. *    SendIO(), except that io_Flags is not cleared. A good understanding
  16. *    of Exec device I/O is required to properly use this function.
  17. *
  18. *    This function does not wait for the I/O to complete.
  19. *
  20. *   INPUTS
  21. *    ioReq - an initialized and opened IORequest structure with the
  22. *            io_Flags field set to a reasonable value (set to 0 if you do
  23. *        not require io_Flags).
  24. *
  25. *   SEE ALSO
  26. *    exec.library/DoIO(), exec.library/SendIO(), exec.library/WaitIO()
  27. *
  28. ******************************************************************************
  29.  
  30.     INCLUDE    "exec/types.i"
  31.     INCLUDE    "exec/io.i"
  32.  
  33.  
  34. ;Call the BeginIO vector of a device directly.  Much like exec/SendIO, but
  35. ;does not touch IO_FLAGS.
  36.  
  37.         SECTION    _BeginIO
  38.         XDEF    _BeginIO
  39.         XDEF    @BeginIO
  40.  
  41. _BeginIO:    move.l    4(sp),a1     ;Get IORequest pointer
  42.  
  43. @BeginIO:        move.l    a6,-(a7)
  44.         move.l    IO_DEVICE(a1),a6 ;Pointer to device
  45.         jsr    DEV_BEGINIO(a6)     ;Jump to device's BEGINIO vector
  46.         move.l    (a7)+,a6
  47.         rts
  48.  
  49.         END
  50.